package com.link.serve.utils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

import java.nio.charset.StandardCharsets;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
@Component
public class HashUtil {


    //这个属性可以放在yaml里面配置
    @Value("${kafka.partitions}")
    private static final int TOPIC_PARTITIONS = 5; // 假设我们有10个partition，可以根据实际需求调整
    /**
     * 根据用户ID生成Kafka的topic
     * @param userId 用户ID
     * @return 哈希后的Topic名称
     */
    public static Integer generatePartitionFromUserId(Long userId) {
        int hashValue = Math.abs(userId.hashCode());
        int partition = hashValue % TOPIC_PARTITIONS; // 通过取余来将用户ID分配到不同的partition
        //测试用，暂时固定partition为0
        return partition; // Topic名称
    }
}
